
package com.wulian.user.mapper;

import com.baomidou.mybatisplus.mapper.BaseMapper;
import com.wulian.common.entity.SysUser;
import com.wulian.common.util.Query;
import com.wulian.common.vo.UserVO;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * 用户表 Mapper 接口
 * </p>
 *
 * @author Administrator
 * @since 2017-10-29
 */
public interface SysUserMapper extends BaseMapper<SysUser> {
    /**
     * 通过用户名查询用户信息（含有角色信息）
     *
     * @param paramMap 用户名
     * @return userVo
     */
    UserVO selectUserVoByUsername(Map<String, Object> paramMap);

    /**
     * 功能描述: <br>
     * 〈通过用户名查询用户信息 手机端使用〉
     * @Param:
     * @Return:
     * @Author: caifulin
     * @Date: 2020/5/6
     */
    UserVO selectUserVoByUsernameToApp(Map<String, Object> paramMap);
    /**
     * 功能描述: <br>
     * 〈通过用户名查询用户信息 手机端使用〉
     * @Param:
     * @Return:
     * @Author: caifulin
     * @Date: 2020/5/6
     */
    UserVO selectInspectionUserVoByUsernameToApp(Map<String, Object> paramMap);

    /**
     * 分页查询用户信息（含角色）
     *
     * @param query     查询对象
     * @param condition 查询条件
     * @return list
     */
   List selectUserVoPageDataScope(Query query, Map<String, Object> condition);


    /**
     * 通过手机号查询用户信息（含有角色信息）
     *
     * @param mobile 用户名
     * @return userVo
     */
    UserVO selectUserVoByMobile(String mobile);

    /**
     * 通过openId查询用户信息
     *
     * @param openId openid
     * @return userVo
     */
    UserVO selectUserVoByOpenId(String openId);

    /**
     * 通过ID查询用户信息
     *
     * @param id 用户ID
     * @return userVo
     */
    UserVO selectUserVoById(Integer id);

    /**
     * 通过workNumberID更改获取员工表中的机构id
     * @param workNumber
     * @return Long
     */
    Integer selectempDeptIdByWorkNumber(String workNumber);

    /**
     * 通过workNumber修改机构
     *
     * @param sysUser
     * @return success/false
     */
    Boolean updateDeptIdByWorkNumber(SysUser sysUser);

    List<SysUser> getUsersByName(Map<String, Object> name);
    
    /**
    * @Title: selectAdminRoleUsers
    * @Description:(获取所选部门下管理员角色下的所有用户集合)
    * @param @param deptId
    * @param @return    参数
    * @return String    返回类型
    * @author mzh
    * @date 2020年4月15日
    * @version V1.0
    * @throws
     */
    String selectAdminRoleUsers(@Param("deptId") Integer deptId);

    /**
     * 功能描述: <br>
     * 〈查询手机号是否存在〉
     * @Param:
     * @Return:
     * @Author: caifulin
     * @Date: 2020/5/8
     */
    Integer existPhone(UserVO userVo);
    /**
     * 功能描述: <br>
     * 〈查询手机号是否存在〉
     * @Param:
     * @Return:
     * @Author: caifulin
     * @Date: 2020/5/8
     */
    Integer existInspectionPhone(UserVO userVo);

    /**
     * 功能描述: <br>
     * 〈短信验证修改手机用户密码〉
     * @Param:
     * @Return:
     * @Author: caifulin
     * @Date: 2020/5/9
     */
    Integer updateAppUserPawword(UserVO userVo);

    /**
     * 功能描述: <br>
     * 〈查詢初始化密碼〉
     * @Param:
     * @Return:
     * @Author: caifulin
     * @Date: 2020/7/17
     */
    String queryInitPassword();


    Integer initPassword(SysUser userDto);

    /**
     * 功能描述: <br>
     * 更新open_id
     * @Param:
     * @Return:
     * @Author: Hjr
     * @Date: 2021/5/13
     */
    Integer updateOpenID(SysUser userDto);



}